#ifndef RAMFS_H
#define RAMFS_H

#include "VFS.h"

// 假设 kmalloc 函数原型，实际使用时根据内核情况调整
void *kmalloc(size_t size, int flags);
void kfree(void *ptr);

// 自定义字符串处理函数声明
int my_strcmp(const char *s1, const char *s2);
void my_strcpy(char *dest, const char *src);
void my_memcpy(void *dest, const void *src, size_t n);

// ramfs 操作函数声明
extern ssize_t ramfs_read(VFSNode *node, void *buf, size_t count);
extern ssize_t ramfs_write(VFSNode *node, const void *buf, size_t count);
extern int ramfs_del(VFSNode *parent, const char *name);
extern VFSNode* ramfs_creat(VFSNode *parent, const char *name, mode_t mode, FileType type);
extern int ramfs_link(VFSNode *old_parent, const char *old_name, VFSNode *new_parent, const char *new_name);
extern int ramfs_mkdir(VFSNode *parent, const char *name, mode_t mode);
extern int ramfs_rmdir(VFSNode *parent, const char *name);
extern int ramfs_readdir(VFSNode *node, void *buf, size_t count);

// ramfs 操作集合
extern FSOP ramfs_op;

// ramfs 文件系统
extern FS ramfs_fs;

// 初始化 ramfs
extern void ramfs_init();

#endif